lexer grammar AnalisisLexer;

options {
  language = Java;
}


@header{

  package practicaspl.nueve;
}


@members{
  private ArrayList<RecognitionException> errors = new ArrayList<RecognitionException>();
  public ArrayList<RecognitionException> getErrors() {
    return errors;
  }
  @Override
  public void reportError (RecognitionException e) {
     String msg = getErrorMessage(e, getTokenNames());
     System.err.println(msg);
     errors.add(e);
  }
}

LETRA : ('a'..'z')|('A'..'Z');
fragment DIGITO :  '0' .. '9';
fragment NUEVA_LINEA: '\r\n' ;
STRING :'"'(options {greedy=false;}: .)* '"';
AETIQ_O :'<';
AETIQ_C : '</';
CETIQUETA : '>';
TABULADOR: '\t';
BLANCO: (' '|TABULADOR|NUEVA_LINEA) {skip();};
NUMERO : DIGITO*;
MULT :  '*';
MM : '<='|'>=';
DIV : '/';
PARENTA : '(';
PARENTC : ')';
SEMICOLON : ';'; 
IDENT : LETRA+;
IGUAL : ':='; 
LLAVEA :  '{';
LLAVEC : '}';
COMA : ',';

